package com.zhentao.datacontrol.service;

import com.zhentao.datacontrol.domain.dto.DataControlRuleDTO;
import com.zhentao.datacontrol.domain.entity.ExecutionLog;

import java.util.List;
import java.util.Map;

public interface DataControlExecutionService {

    /**
     * 自动检控 - 执行所有已发布的规则
     */
    String executeAutoControl();

    /**
     * 常规检控 - 执行指定规则
     */
    String executeManualControl(List<Long> ruleIds);

    /**
     * 执行单个规则
     */
    ExecutionLog executeRule(DataControlRuleDTO rule, String executionType);

    /**
     * 获取执行历史记录
     */
    List<ExecutionLog> getExecutionHistory(int pageNo, int pageSize, String executionType, String status);

    /**
     * 获取执行详情
     */
    ExecutionLog getExecutionDetail(String executionId);

    /**
     * 停止执行
     */
    boolean stopExecution(String executionId);

    /**
     * 清理历史记录
     */
    boolean cleanHistory(int keepDays);

    /**
     * 获取执行统计
     */
    Map<String, Object> getExecutionStatistics();

    /**
     * 重新执行失败的任务
     */
    String retryFailedExecution(String executionId);
}
